<!-- 
  pinia
    pinia新一代的状态管理工具
    options 写法
    composition 写法
    组件中使用  模块.属性  模块.方法
    解构丢失响应式 storeToRefs  了解
    统一维护仓库模块
  项目
    1. 介绍 + 技术栈
    2. 创建初始化项目
    3. 配置 校验规则  ts托管
    4. 代码工作流 了解
    5. 调整项目目录 安装sass
    6. 安装vant组件库 测试
    7. 配置适配 
    8. 主题的定制  认识 css变量  全局样式变量 :root {--变量名: 值;}  局部样式变量 .选择器 {--变量名: 值;}
    9. 创建user仓库 定义的数据类型  数据  设置个人信息 删除个人信息的方法 app.vue组件中测试
    10. 仓库数据持久化 pinia-plugin-persistedstate 
    11. pinia仓库统一管理  main.ts  模块  整合到一个文件中
 -->

<!-- 小结
 1. 请求模块的封装
 1.1 从笔记中拿到 axios 模板结构 配置基地址和超时时间
 1.2 请求拦截器中统一挂载了token
 1.3 响应拦截器中 剥离了数据  res.data
 1.4 响应拦截器中 响应状态码 !== 10000 消息提示 抛出异常的promise阻止代码执行
 1.5 响应拦截器第二个处理函数中 处理token失效的问题  清除了个人信息  跳转到登录页面 携带了回跳页面地址
 1.6. 请求工具函数的封装 并且配置响应泛型

 2. 明确梳理 路由规则  并创建了登录页面的组件和路由规则

 3. 实现组件库的组件的自动注册
  1. 安装依赖 unplugin-vue-components/vite
  2. vite.config.ts中配置  文档    importStyle: false 在导入组件的时候 不要再导入组件的样式    dts: false, // 不需要再次声明组件的类型了
 4. 封装cp-nav-bar 通用导航组件 
   1. 新建 components/cp-nav-bar.vue组件  准备结构
   2. 父传子 定制了标题 和 右侧文本  右侧文本点击 子传父 
   3. 点击左侧箭头  回退  history.state.back 
   4. 自定义组件的类型支持  
      1. 显性的导入子组件
      2. types/components.d.ts 自定义组件的类型 
 5. 绘制了登录页面的结构+样式
 6. 做登录表单手机号的校验 + 密码的校验  抽离 校验规则 
 7. 为按钮绑定native-type="submit" 触发form组件的submit事件
 8. 许可协议勾选
  9. 登录业务
    1. 准备登录接口 sevices/user.ts
    2. 调用接口发送请求
    3. 存储用户信息
    4. 提示
    5. 跳转 回跳 直接去/user
 10. 面板两种状态切换  isPass         
-->

<!-- 
  小结
    1. 发送获取验证码 先校验手机号合法
       form组件上 validate方法   validate()  validate('表单元素的name')
    2. 准备了获取验证码的接口  发送获取验证码
    3. 倒计时操作 和模板结构关联
    4. 准备手机号+验证码的登录接口  发送请求 
    5. svg雪碧图 准备 vite-plugin-svg-icons 按着文档配置
    6. 封装组件 cp-icon  并且父传子  做组件的类型 
    7. 密码可见与不可见的状态切换 cp-icon组件
    8. 准备布局容器的五个组件和 嵌套的路由规则
    9. tabbar组件  route开启路由模式  为每一个item绑定 to属性 / 文本和激活和失活的图标
    10. 导航守卫的拦截  前置守卫  router.beforeEach((to, from) => {})
    11. 后置导航守卫中  页面标题的切换展示 为每一个路由规则添加路由元信息  meta
    12. 前置守卫+后置守卫  => 进度条 nprogress
    13. 个人中心  准备了用户信息的类型
    14. 准备获取用户信息的接口 并调用 展示个人信息  认识badge徽标组件
    15. 快捷工具 准备一份数组 遍历展示
    16. 退出功能 1. 准备按钮绑定事件  2. 展示对话框  3. 退出确认 清除了个人信息 跳转到登录页面
    17. 配置家庭档案的组件和路由规则
    18. 准备患者列表的类型  封装接口  调用接口 并展示 脱敏
 -->